<?php
/**
 * Ce script php permet la gestion de la connexion et 
 * de la déconnexion des utilisateurs, ainsi que l'affichage du menu
 **/

// Informations sur l'utilisateur courant
$email = '';
$form_msg = '';

// Une demande de connexion a  été demandée
if(isset($_POST['email_connexion']) && isset($_POST['password_connexion'])) {
	
	$email = sql_protect(html_escape($_POST['email_connexion']));
	$password = sql_protect($_POST['password_connexion']); //sha1($_POST['password']);
	

	// Requête SQL pour vérifier les données de connexion
	$result = SGBD::query(
			"SELECT email,isadmin
			FROM utilisateur 
			WHERE password='$password';");
	if(!$result)
	throw new Exception("Erreur lors de la requête SQL " . $result);
	
	         
    // Extraction des données   
    $data = SGBD::fetch($result); 
   
    // Vérification des données
    if(isset($data['email']) && $data['email']==$email){
		
		// Mise à jours des variables de session utilisateur
		// . login de l'utilisateur
		$_SESSION['email'] = $email;
		// . Rang de l'utilisateur
		if($data['isadmin'] === 't')  // TYPE BOOLEAN EN SQL -_-'
			$_SESSION['user_rank'] = 2; 
		else
			$_SESSION['user_rank'] = 1;
	
	}
	else {
		
		// Echec d'authentification...
		// ... une erreur est indiquée
		$form_msg = "Email ou mot de passe incorrect<br/>";
	}
} 
// Une demande de déconnexion a été demandée
else if(isset($_GET['deconnexion_query'])) {
	
	// Destruction des données de session
	$_SESSION['user_rank'] = 0;
	// Affichage de la bonne deconnexion
	$form_msg = "Vous êtes bien deconnecté<br/>";
	
	session_destroy();
}

// L'utilisateur est connecté
if($_SESSION['user_rank'] > 0) { 

	// On affiche le formulaire d'un utilisateur connecté
	$template->setTemplateFile('connexion_form','tpl/connexion_form_c.tpl');
	// Affichage du nom de compte de l'utilisateur actuellement connecté
	$template->parseTemplate('connexion_form',"CONNEXION_FORM_EMAIL",$_SESSION['email']);
	
} 
// L'utilisateur n'est pas connecté ou une erreur s'est produite
else { 
	
	// Le formulaire de connexion est affiché
	$template->setTemplateFile('connexion_form','tpl/connexion_form_nc.tpl');
	// Si un login a déjà été entré, celui ci est réaffiché
	$template->parseTemplate('connexion_form',"CONNEXION_FORM_EMAIL",$email);
	// Affichage d'un éventuel message (erreur/info) lors de la connexion
	$template->parseTemplate('connexion_form',"CONNEXION_FORM_MSG",$form_msg);
		
}



// Menu gauche
$template->setTemplateFile('menu','tpl/menu.tpl');

// Liste des pages
// . Non connecté ou simple utilisateur
if($_SESSION['user_rank'] < 2) 
	$template->setTemplateFile('pages_list','tpl/pages_list/pages_list_nc.tpl');
// . Si administrateur
else
	$template->setTemplateFile('pages_list','tpl/pages_list/pages_list_admin.tpl');
	

// Remplissage du menu avec le formulaire de connexion et la liste des pages
$template->parseTemplate('menu',"MENU_CONNEXION_FORM",$template->getTemplate('connexion_form'));
$template->parseTemplate('menu',"MENU_PAGES_LIST",$template->getTemplate('pages_list'));



?>
